package br.com.rumus.mb.seguranca;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import br.com.rumus.dominio.seguranca.Papel;
import br.com.rumus.facade.FacadeSeguranca;
import br.com.rumus.jsf.FacesUtils;
import br.com.rumus.mb.EditarBean;

@ManagedBean(name="editarPapel")
@ViewScoped
public class EditarPapelBean extends EditarBean<Papel>{

	private FacadeSeguranca facade = new FacadeSeguranca();
	private Papel objeto;
	
	public Papel getObjeto() {
		if(this.objeto==null){
			this.objeto = new Papel();
		} else if(this.objeto!=null&&this.objeto.getId()!=null){
			this.objeto = (Papel) facade.buscar(objeto);
		}
		return objeto;
	}

	public void setObjeto(Papel objeto) {
		this.objeto = objeto;
	}

	public String incluir(){
		if(facade.existeNomePapel(this.objeto.getNome())){
			FacesUtils.info(FacesUtils.i18nMensagem("papel.mensagem.nome"));
			return null;
		}else if(facade.existeDescricaoPapel(this.objeto.getDescricao())){
			FacesUtils.info(FacesUtils.i18nMensagem("papel.mensagem.descricao"));
			return null;
		}else{
			facade.inserir(this.objeto);
			return "/seguranca/papel/listar.faces";
		}
	}
	
	public String atualizar(){
		facade.alterar(this.objeto);
		return "/seguranca/papel/listar.faces";
	}
	
	public String cancelar(){
		return "/seguranca/papel/listar.faces";
	}
	
	public String remover(){
		if(!facade.vinculoPapel(this.objeto)){
			facade.remover(objeto);
			return "/seguranca/papel/listar.faces";
		}else{
			FacesUtils.erro(FacesUtils.i18nMensagem("papel.mensagem.vinculo"));
			return null;
		}
	}
	
}
